package com.dhcc.DRGsHosp.application;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.dhcc.DRGsHosp.core.domain.IndexCal;
import com.dhcc.DRGsHosp.core.domain.IndexCal;

public interface MonitorResultApplication {

	public IndexCal getIndexCal(String mrId);

	public void creatIndexCal(IndexCal IndexCal);

	public void updateIndexCal(IndexCal IndexCal);

	public void removeIndexCal(IndexCal IndexCal);

	public void removeIndexCals(Set<IndexCal> IndexCals);

	public List<IndexCal> findAllIndexCal();


	/**
	 * 
	 * @methodname :testIndexCalQuery
	 * @description :监测库查询数据
	 * @param :
	 * @author :liqingyang
	 * @return :
	 * @date :2015年4月3日
	 */
	public List<IndexCal> findListByparam(IndexCal IndexCal);
	
	/**
	 * 
	 * @methodname    :getQuatrantChart
	 * @description   : 科室指标象限分析图
	 * @param         :
	 * @author        :fulianxia
	 * @return        :
	 * @date          :2015年5月13日
	 */
	public List<Object[]> getQuatrantChart(IndexCal IndexCal);
	
	/**
	 * 
	 * @methodname    :getDisQuatrantChart
	 * @description   : 病种指标象限分析图
	 * @param         :
	 * @author        :wangteng
	 * @return        :
	 * @date          :2015年12月3日
	 */
	public List<Object[]> getDisQuatrantChart(IndexCal IndexCal);
	
	
	
	/**
	 * 
	 * @methodname    :getQuotaAnalysisDetail
	 * @description   : 获取重点指标综合分析详情数据
	 * @param         :
	 * @author        :fulianxia
	 * @return        :
	 * @date          :2015年5月25日
	 */
	public Map<String,Object> getQuotaAnalysisDetail(IndexCal IndexCal,String quotaCodec);
	
	/**
	 * 
	 * @methodname    :getProtomedicusByDepCode
	 * @description   : 按科室代码查询副主任医师
	 * @param         :
	 * @author        :fulianxia
	 * @return        :
	 * @date          :2015年11月24日
	 */
	public List<Map<String,Object>> getProtomedicusByDepCode(IndexCal indexCal);
	
	/**
	 * 
	 * @methodname    :getClinicByDepCode
	 * @description   : 按科室代码查询主诊组
	 * @param         :
	 * @author        :fulianxia
	 * @return        :
	 * @date          :2015年11月24日
	 */
	public List<Map<String,Object>> getClinicByDepCode(IndexCal indexCal);
	
	//查询全院最小检测日期  MC|Y类型
	public int queryMinYear();
	//查询全院最大检测日期  MC类型
	public int queryMaxYear();
	
	
	/**
	 * @methodname    :findAllMonthData
	 * @description   :获取所有月份数据
	 * @param         :
	 * @author        :WangTeng
	 * @return        :
	 * @date          :2015年8月27日
	 */
	public List<Object[]> findAllMonthData(IndexCal IndexCal,String quotaCode);
	
	/**
	 * 
	 * @methodname    :getResidentInDep
	 * @description   : 获取当前科室下的所有住院医师
	 * @param         :
	 * @author        :fulianxia
	 * @return        :
	 * @date          :2016年4月19日
	 */
	public List<Map<String, Object>> getResidentByDepCode(IndexCal IndexCal);

	/**
	 * @methodname    :getPhysicianByDepCode
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年10月9日
	 */
	public List<Map<String, Object>> getPhysicianByDepCode(IndexCal indexCal);
/**
 * 
 *  findWardsByCondition.  
 *  @Description：获取科室下病区
 *  @Author LiuHongjun
 *  @param entity
 *  @return 
 *  @Date:2017年7月22日上午11:25:28
 */
	public List<Map<String, Object>> findWardsByCondition(IndexCal entity);

}
